package br.com.advocacia.dao.unitario.impl;

import java.util.List;

import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import br.com.advocacia.dao.generico.DaoGenerico;
import br.com.advocacia.dao.unitario.contract.CidadeDaoContract;
import br.com.advocacia.entidade.Cidade;
import br.com.advocacia.util.StringUtil;

@Repository("cidadeDao")
public class CidadeDao extends DaoGenerico<Cidade> implements CidadeDaoContract {

	private static final long serialVersionUID = 1L;

	@SuppressWarnings("unchecked")
	@Override
	public List<Cidade> buscarCidadesPorEstado(Long idEstado, String nomeCidade) {
		
		try {
			StringBuilder sqlTotal = new StringBuilder();
			sqlTotal.append(" Select e from Cidade e ");
			sqlTotal.append(" where e.estado.id = " + idEstado);
			
			if (StringUtil.textoPreenchido(nomeCidade)) {
				sqlTotal.append(" and e.nomeCidade like '%"+nomeCidade+"%' ");
			}
			
			sqlTotal.append(" order by e.nomeCidade asc ");
			
			Query query = getSession().createQuery(sqlTotal.toString());
			return query.list();
			
		} catch (Exception e) {
			System.out.println("Erro ao buscar cidades");
		}
		
		return null;
	}

}